package com.bridge.consistency;


import org.springframework.util.StringUtils;

/**
 * @author Jay
 * @version v1.0
 * @description 用于存放线程的镜像版本号，生命周期和线程绑定，在实际使用的时候建议配合拦截器
 * @date 2019-02-18 14:15
 */
public class ThreadContext {

    private static ThreadLocal<String> mirrorVersionMap = new ThreadLocal<>();

    /**
     * 获取当前线程持有的版本号
     *
     * @return
     */
    public static String getMirrorVersion() {
        if (mirrorVersionMap != null) {
            return mirrorVersionMap.get();
        }
        return null;
    }

    /**
     * 将线程与版本号添加关联
     *
     * @param mirrorVersion
     * @return
     */
    public static String setMirrorVersion(String mirrorVersion) {
        if (!StringUtils.isEmpty(mirrorVersion)) {
            mirrorVersionMap.set(mirrorVersion);
        }
        return mirrorVersion;
    }

    /**
     * 移除线程与版本号的关联
     */
    public static void removeMirrorVersion() {
        if (mirrorVersionMap != null) {
            mirrorVersionMap.remove();
        }
    }

}
